home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #1
/
Amiga Plus 1995 #1.iso
/
fish-disketten
/
fish_941-950
/
d949
/
bbbbs
/
bbbbs65.lha
/
Information
/
BBBBS.DOC
< prev
next >
Wrap
Text File
|
1993-09-05
|
38KB
|
956 lines
5 Sep 1993
BBBBS - Baud Bandit Bulletin Board System for the Amiga - BBBBS
***************************** Features *****************************
Up to 99 file libraries with extended filenotes.
Up to 99 fully threaded message conferences.
Number of users, files, messages, etc. are only limited by storage space.
Controlled file library and message conference access for users & sysops.
Interface to extra devices like CD-ROM & others, all treated as Read-Only.
Complete Email area including binary mail, and multiple forwarding.
User statistics including messages written, files ul/dled, time, etc.
RexxDoors sub-area, Grin_du_Jour, StarTrek, Wheel_Of_Fortune, much more!
Searches: Search users, file descriptions, or messages.
Online Text Editor: with Cut and Paste, Replace, and Spellchecking.
Selectable Auto-validation using Call Back Verify.
Separate multi-tasking module for local sysop logon.
User profiles, Polling_Place (a voting booth), background archiving.
Complete offline read/reply/upload/download module, bbsQUICK.rexx.
***************************** Contents ****************************
1. Copyright and Distribution Information
2. Requirements
3. Organization
4. Setting Up
5. User data
6. bbsLOCAL.rexx
7. Macros
8. rexxDoors
9. Additional Notes
a. RexxSpell
b. FileLists
c. Links
d. Birthdays
e. Sounds
******************** Copyrights and Distribution ********************
The ARexx modules in BBBBS are copyright 1990-91-92 Richard Lee Stockton,
and ALL RIGHTS ARE RESERVED. In particular, commercial use of these
programs requires a written agreement with the author. HOWEVER, these
files may be freely distributed and used for non-commercial purposes
AS LONG AS the copyright notices contained within the code remain intact.
To contact me for distribution or just more information:
Richard Lee Stockton
21305 60th Ave West
Mountlake Terrace, WA 98043-2009
Phones:
voice = 206-776-1253
FAX = 206-775-7573
BBS = 206-744-1254
Telecomm:
call the BBS number above and leave a [C]omment to sysop.
- OR - send Email to RLStockton on PORTAL or BIX or GENIE
- OR - (if you MUST), my Compu-$erve address is 71650,424
****************** Requirements for operation ************************
BBBBS Requirements: Assumes standard 1.3 or 2.0 Amiga OS
RAM: ~2.5 MEGS of RAM to run. 2.0 MEG without spellchecking.
Commercial Software:
(I have *nothing* to do with these, except for using them.)
BaudBandit 1.50 - $50 retail, ~$30 discounted
ARexx 1.15 - $50 retail, ~$30 discounted
Freely Distributable Software:
(comes with BBBBS or are easily found in the PD)
BBBBS.LZH
rexx (must be in your rexx: drawer)
Answer.baud
ArcAlpha.rexx
ArcBrowse.rexx
ArcMsgs.rexx
baud.rexx
BBBBS.baud
BBBBSdemon.baud
bbsALPHA.rexx
bbsArcExt.rexx
bbsArcSTOP.rexx
bbsDoors.rexx
bbsExtDL.baud
bbsHOURLY.rexx
bbsLOCAL.rexx
bbsLOGOFF.baud
bbsLOGON.baud
bbsMAINT.baud
bbsNewFile.rexx
bbsQUICKIN.rexx
bbsQUICKOUT.rexx
bbsREPORT.rexx
bbsSounds.rexx
bbsSpeak.rexx
bbdsSTATS.rexx
bbsULDL.rexx
bbsUSER.rexx
bbsSTAT.rexx
BuildALPHA.rexx
BumpLevels.baud
BumpTime.baud
ChangeUserName.rexx
Contents.rexx
EditUsers.rexx
ForceChat.baud
Make_BrowseList.baud
OldEMail.rexx
PhoneDupes.rexx
SendFile.rexx
Setup.rexx
ShowFKeys.baud
ShowHourly.rexx
ShowLog.baud
TestArc.rexx
ToggleNoise.rexx
rexxDoors (these are needed for opening and closing cookie, etc.)
Data (DIR)
Grins
Grin_du_jour.rexx
Moon.rexx
Time.rexx NOTE! Many other rexxDoors in BBDoors<nn>.lha
libraries (must be in your system Libs: drawer)
arp.library (VERS 39.1 by CHeath & others on bbs everywhere)
rexxarplib.library (VERS 3.0 by Willy Langeveld on bbs everywhere)
screenshare.library (VERS 1.52 comes with rexxarplib)
rexxmathlib.library (VERS 1.3 by Willy Langeveld on bbs everywhere)
rexxsupport.library (VERS 34.9 comes with ARexx 1.15)
rexxsyslib.library (VERS 36.23 comes with ARexx 1.15)
commands (must be in your system C: drawer
QuickSort (by Marvin Weinstein - ARexxQSort.lzh)
sound (by RLStockton, needed to play BBS Yell.snd)
boot (optional: warm-boots if BBBBS seems frozen)
lha (freely distributable de-archivers...)
arc
zoo
unzip
dms
************************** Organization **********************************
BBS:
BBBBS looks in your s: directory for the file "CONFIG.BBS" which sets all
preferences including the device where the BBS files are located.
Within this device, the BBS may use 99 file & 99 message directories.
(if S:CONFIG.BBS is not found, BBBBS looks for BBS:BBS_TEXT/CONFIG.BBS
and if THIS file is not found, BBBBS will give up and quit).
Users may be given access levels between 0 (new user) and 99 (super-sysop).
The lowest sysop level (gets to edit filenotes, maybe edit messages
depending on level) defaults to 80. Level 99 (and only level 99!) is
allowed to open a remote Shell and the power to edit ANY file remotely.
Uload/Dload access to libraries & conferences at or below the user's level.
Also, a sysop may exclude certain directories from the user's use.
(file libraries by name, or message conferences by number)
BBS System File Directories:
'Sysops' = Holds files for sysop review.
'Information' = User viewable files. 'I' from the Main Menu.
'Scratch' = temporary editor files, etc. For debugging.
'BBS_HELP' = Command summary files, according to level.
'rexxDoors' = rexx doorway programs
Grin_du_Jour.rexx = 'one-liner' humor
Moon.rexx = the phase of the moon
Time.rexx = the time in words
rexxDoors/Data/Grins = data for 'Grin_du_Jour.rexx'
...other rexxDoors available in "BBDoors.lha"
'BBS_TEXT' = Text (mostly) files used by the BBS.
HELLO = Sign on message. (19 lines max!)
NEW = New user welcome message.
YELL.snd = (optional) Yell-For-Sysop sound.
YELL = (optional) Yell voice script.
WELCOME = default welcome message
WELCOME.Mon, WELCOME.Tue, ..., WELCOME.Sun
= Daily Welcome messages.
WELCOME.1225 = Christmas welcome msg., etc.
UNTIL.19920201 = displays at logon through Feb 1, 1992
GOODBYE = Logoff message. (local BBS numbers)
DEF.NEW_USER = new user defaults
DEF.MEMBER = member defaults
DEF.COURTESY = courtesy list defaults
BIRTHDAY = displays on user's birthday
PROFILES = intro message to user profiles area.
'FileNotes' = A dir of dirs. Each dir corresponding to a
file library. Within each, a file desciption
of the corresponding file in the library.
Written by BBBBS.baud, but editable.
'BBS_LIBS' = Up to 99 file libraries. You select the names of
these by editing the file 'BBS:Lists/Libraries'.
The BBS sees them by name.
'BBS_MSGS' = Up to 99 message conferences. You select the
names of these by editing the file
'BBS:Lists/Conferences', but the BBS sees
them as MSG1 thru MSG99.
'Lists' = System lists and lists needed by bbsREXX.
Libraries = see example for proper format
Conferences = see example for proper format
Files = THIS FILE IS WRITTEN BY BBBBS.baud.
Under normal circumstances it should NOT be edited
by humans. format: 'filenum dirname filename'
Files.ALPHA = written by BBBBS.baud
Courtesy = List of VIP usernames. A new
user on this list is given immediate access.
That name is then removed from this list.
Excuses = list of randomly selected reasons why
the sysop cannot CHAT right now.
*** Following dirs contain files written by BBBBS.baud. DO NOT EDIT! ***
'Numbers' = LastFile, LastMail, LastMessage1, etc.
Also a dir called "Hourly" that contains data
for the "average minutes of use per hour" graph.
'Usage' = Monthly files. Counts hours of modem usage.
'Logs' = Daily files. Tracks user, time, mail or message activity,
uloads/dloads, internal errors, etc.
Built in 'log-reader' for sysops.
'EMailFiles' = Private files left attached to EMail.
'EMail' = Private mail between users.
'Users' = User files.
*************************** Setting Up *****************************
Follow these steps to set up your own BBS..
1. Do Initial Setup (assumes that bbspath is "BBS:")
a. CD to BBS: ; the directory to de-lharc the bbs into
b. Lha x BBBBSnn.lha ; extract respecting original paths
c. COPY BBS:rexx/QuickSort C: ; ARexx QuickSort
d. COPY BBS:C/#? C: ; Sound and other C: type programs
e. COPY BBS:S/#? S: ; Bandit.Keys, Bandit.Config
f. COPY BBS:BBS_TEXT/CONFIG.BBS S: ; or leave alone if BBS: is assigned
g. COPY BBS:rexx/#? REXX: ; NOTE: 560K of rexx programs!
h. COPY BBS:libs/#? LIBS: ; needed PD libraries
2. Make sure that "C:DATE" returns the correct time and date. The BBS
needs to know the correct time and date for many of its routines.
3. Use a Text editor to edit the following lists. These lists can be
changed or edited anytime. The libraries may be re-ordered at any time,
but the message conferences can only be added to, not re-shuffled. That
is, once you associate a message conference title with its number, and
messages are actually written to that conference, you MUST keep that same
number associated with that conference title. (This is because messages
are kept in MSG1, MSG2, etc. while files are kept in directories created
with the title that YOU give it. Note: No spaces are allowed in titles).
You may change the CONFERENCE title, but the old messages in that
conference will still refer to the old title. It is possible to change
a LIBRARY title, but you also have to rename the directory, and update
all references to the old dir (which can be quite a few!), so I advise
against it. Use care in all title selections and save yourself future
problems with re-naming.
a. BBS:Lists/Conferences (message conference names)
b. BBS:Lists/Libraries (file library names)
Note: If you wish to review uploaded files before public posting, you need
to be certain that the highest possible non-sysop directory is called
"Sysops", as this is where new uploads will be saved.
c. BBS:Lists/Courtesy (these names receive INSTANT validation)
d. BBS:Lists/Excuses (good reasons why the sysop can't chat right now)
4. Use a Text editor to edit "S:CONFIG.BBS" to your preferences.
IMPORTANT! Test your "c:info" from the CLI with your "info-compatible"
device name to make sure that the blocks free amount is being returned.
See BBS_TEXT/CONFIG.BBS for line by line a description of the options.
Note that if line 30 of the config is 1, the BBS stays "up" all the time,
which means the CONFIG.BBS and the various Lists are not reloaded each
call. DO NOT change the file libraries using bbsLOCAL.rexx while the BBS
is in resident mode as this will confuse the BBS and files will be lost.
To exit resident, use SHIFT-F2 from BaudBandit to setclip BBS_QUIT=QUIT.
It may take up to two minutes for BBBBS to notice that it is supposed to
unload before it will actually halt the rexx process. Watch for the blue
dot to disappear from the upper right part of the BaudBandit titlebar.
If you want the default sysop name to be something other than "SYSOP":
a. The name should be in all caps with the "_" character substituted for
spaces. (ie, RICHARD_LEE_STOCKTON).
b. Then, put "SYSOP" in the exclusion list to make sure no one else can
use "SYSOP" as their user name.
c. Delete the file "Users" in the "Lists" drawer of the BBS.
d. Finally, Rename BBS:Users/SYSOP BBS:Users/<your sysop name>
5. Use the Text editor on the following textfiles to be read by the user.
a. BBS:BBS_TEXT/HELLO /* this is the title message */
b. BBS:BBS_TEXT/NEW /* message to new users */
c. BBS:BBS_TEXT/WELCOME /* once-a-day welcome to users */
d. BBS:BBS_TEXT/GOODBYE /* last thing the user sees */
e. BBS:Information/SYSTEM_INFO /* what Amiga model, OS, etc */
6. You may also wish to edit the default user files in the BBS_TEXT drawer,
but I suggest leaving them alone until you gain a better understanding
of the BBS system.
a. DEF.NEW_USER /* all lines are used */
b. DEF.COURTESY /* all lines are used */
c. DEF.MEMBER /* ONLY time, level, and exclude_dirs are used */
7. Start the LOCAL BBS by typing "rx bbsLOCAL SETUP". Enter "sysop"
(or the name you changed it to) when asked to enter your name, then
enter "password" when asked for a password. This will construct the
directories you specified in BBS:Lists/Libraries, (if they don't already
exist).. likewise, the message conferences will be constructed, if needed.
You will then enter the bbs _AS IF_ it were running from the modem,
although Baud Bandit is not needed at all.
8. Select "Y" to edit your personal data. CHANGE YOUR PASSWORD!!
9. Read the BBBBS.COMMANDS file in [I]nformation for general command
information, and take a look around the board. Try out some things a
user would try.
10. Use "G" to logoff which will rewrite your user file.
11. Start BaudBandit. Check BB's Macro display. The important thing
here is to make sure that "\mAnswer.baud" is in "RING" portion of BB's
configuration.
2400 baud (and below) operation:
Handshake should be set to "NONE" (otherwise CTRL-S can hang the BBS).
AutoBaud should be set to "ON" and the baud rate to the same value
you have set in BBS:BBS/CONFIG as the Maximum baudrate.
9600 baud (and above) operation:
Handshake should be set to "7-Wire".
AutoBaud should be set to "OFF" and the baud rate set to the maximum
"terminal-to-modem" baudrate (19200 max for less than 68020 cpu).
I have used Practical Peripherals modems and the setup strings are:
9600SA AT &F M0 &C1 &D3 S95=47 &W
14400FXSA AT &F M0 W1 &C1 &D3 &T5 S37=11 S95=47 S118=2 &W
&F = factory defaults
M0 = turn speaker off [optional]
W1 = enable progress messages
&C1 = track DCD
&D3 = monitor DTR and reset to power up conditions
&T5 = disable remote testing [optional]
S37=11 = highest modem to modem rate is 14400
S95=47 = all progress messages and modem-modem speed report
S118=2 = LCD display 2 seconds per line of info. [optional]
&W = save to modem RAM so ATZ will recall these settings
These may or may not work for you, but at least it's a place to start.
Note that you only have to give this command once, then the "ATZ"s
that BBBBS sends will reset your modem to this default.
There are Bandit.Config files provided for both 9600/14400 and 2400.
If you make any changes remember to save them.
NOTE! Your modem MUST be set so that you can see verbose responses from
your modem on your BB screen (ie, RING, CONNECT 9600/ARQ (or whatever),
NO CARRIER, OK, etc). THIS IS _THE_ MOST COMMON MISTAKE THAT WOULD-BE
SYSOP SEEM TO MAKE! Also, baudrates reported by the modem should be the
modem-to-modem baudrate. Correct BBS operation depends on these messages.
12. If you have RAM to spare, give yourself a large capture buffer in
BaudBandit, especially if you will be debugging. You can use BB's
review buffer to study what the user did, in what order, and what
happened. I have mine set to about 150k..
13. To set up the BBS to start automatically in the background, add
these lines to your startup-sequence:
(assumes that BaudBandit is in the BBS: drawer)
assign rexx: dh0:rexx ; Edit dh0:rexx to YOUR rexx drawer.
rx setup
BBS:BB ; Edit this to YOUR BaudBandit path
WaitForPort BAUD
;rx Baud OFF ; uncomment this line to close BB's screen after startup
run rx "ADDRESS BAUD;Send '\mBBBBS.baud'"
14. You may also wish to install BBDoorsnn.lha (extra rexxDoors for BBBBS),
SpellBBS.lzh (the spell-checker), and TODAY.lha ("today in history" program).
Also note that many BBBBS sysops have written various alterations, rexxDoors,
sysop-help programs, and more. Search your BBS for the keyword "BBBBS".
15. At last, nothing left to do but sit back and wait for callers, and soon
become beloved sysop to billions of users... ;-) ;-)
********************* User data file ***************************
1. name:
2. street:
3. city, st zip:
4. phone:
5. password: (only visible by user and super-sysop)
6. protocol:
7. lines per page:
8. preferences: may include MENU or MENUS, COLOR, STREET, PHONE
9. Computer:
10. Interests:
11. Time: <nn> minutes <nn> more times today
12. first date on: datestamp timestamp
13. last date on: datestamp timestamp
14. upload: <nn> files <nn> bytes day month year
15. download: <nn> files <nn> bytes day month year
16. lastfile: lastfile datestamp timestamp
17. rtio/eml: dl/ul_ratio email_written last_email_read_(sysop_only)
18. winnings: <nn>
19. time on: <nn> days <nn> hours <nn> minutes in <nn> calls.
20. level: <nn>
21. exclude list: msg conf by number, file lib by name, space separated
22. msg_read: MSG1 MSG2 MSG3 ... MSG<last> (-1 in MSGslot = conference OFF)
23. msg_writ: MSG1 etc.
24. msg_mark: MSGdirnum/MSGnum MSGdirnum/MSGnum... (conf msgs TO this user)
25. used to temporarily store filelist to be downloaded.
26. QUICK exclude list (files excluded from bbsQUICKOUT archives)
27. List of CBV numbers attempted by this user (if any).
Default data for New Users is stored in BBS_TEXT/DEF.NEW_USER
Default data for Courtesy List Users is stored in BBS_TEXT/DEF.COURTESY
Only lines 6-22 of these files are used, the rest are ignored.
Default data for Members is stored in BBS_TEXT/DEF.MEMBER
Only lines 11, 20, 21 and 22 of this file is used, the rest are ignored.
********************** bbsLOCAL.rexx ***************************
This is a multi-tasking (within limits, see below) rexx program that
you as the sysop may run from a Shell or CLI. In most ways it is just
like the regular BBS program, so you see what your users see. However,
it is not connected to BaudBandit in any way, and in fact, does not
use the serial port (or your modem) at all. Upload and download functions
are transmuted into copy (with the arp requester), and some functions
are left out (like the check for DCD, etc.). It DOES look at the same
data that BBBBS.baud looks at, and reasonable care must be taken not
to add files to the file libraries while a user is also adding a file
to the libraries. Likewise, don't write EMail while the user is writing
email, and don't write messages while the user is writing messages IN
THE SAME CONFERENCE (messages CAN be written in different conference at
the same time, one by user, one by sysop).
CLI> rx bbsLOCAL SETUP
Copying Files Direct Into the Libraries:
METHOD 1:
Run bbsLOCAL and use the Upload command. The arp file requester
will appear so you can copy the files into the correct libraries. After
the copy, you will enter a note just as if you uploaded the file, and
the system filelists will be updated.
METHOD 2:
First copy the files to the correct libraries. Then run bbsLOCAL
(or call) and edit (in this case, create) the file description using
the "%" sysop command.
In either case, when BBBBS sees that this note has been created,
it adds the file to the other system filelists, and increments the
count in "Numbers/LastFile".
************************* Macros *******************************
Note that if called from BB with a user online, these macros will not
take effect if the user is waiting at a menu. You can press return
yourself to force the macro if it looks like the user is sleeping
- Function Keys -
F1 - ForceChat.baud - Forces user into chat at next prompt.
F2 - Twit.baud - TWIT-KEY, forces logoff of current user at next prompt.
F3 - BumpTime.baud - Opens a requester allowing you to set this users
maximum time in minutes for this session. It will take effect at
the next prompt. This is a temporary change, this session only.
F4 - BumpMember.baud - Member values are taken from "BBS_TEXT/DEF.MEMBER".
Takes effect at the next prompt. This change is saved to the users
data file. It is permanent.
F5 - BumpLevels.baud - Opens a requester allowing you to set the level and/or
upload to download ration for this user. It will take effect at the
next prompt. This change is permanently saved to the users data file.
F6 - Close Function Key Help Window
F7 - ShowLog.baud - Displays today's log on BB's screen, BBS running or not.
F8 - An inline macro to fetch the clip "BBS_totalusage" and display monthly
usage in hours and minutes.
F9 - Baud.rexx OFF - Turns BaudBandit's screen off (improves speed). While
the screen is off THE CAPTURE BUFFER STAYS OPEN! This means you can
leave the screen off for fastest response, then, when the modem tells
you the user has logged off, turn the screen on again (from CLI
"rx Baud") and read the review buffer (SHIFT-HELP).
F10 - Opens a Function Key Help Screen on BaudBandits screen. F6 to close.
- SHIFTED Function keys -
S1 - Starts up BBBBS.baud.
WARNING! Don't start BBBBS while it is already running in this BB!
S2 - Sets the "UnLoad" flag.
BBBBS will exit after the current call, or within 60 seconds.
S3 - UnSets the UnLoad flag (in case you change your mind)
S4 - Toggles BBBBS sounds and voice ON/OFF.
S5 - Opens a window on BaudBandit that lists the background archive
processes currently running, by username and type of process,
and allows aborting any or all of them.
S6 - Set the modem "off-hook". Users see busy signal.
S7 - Reset modem to "on-hook" (hangup).
S8 - Display total RAM available on the screen, chip+fast.
S9 - Close the editor buffer a user opens to write messages, etc.
S10 - Enter message to be sent to current user at first opportunity.
--- Other Macros ---
BuildALPHA.rexx - rebuilds the file & alpha lists from the ground up.
BBBBS should preferably not be running so that a user won't upload in
the middle of your rebuild and overwrite the list. This macro sets
a clip that forces BaudBandit to give a BUSY message to any caller.
After buildALPHA.rexx is finished, the clip is cleared, and BBBBS
will go back online.
BuildALPHA.rexx may take a while. 1400 files=15 mins on 68000 Amiga.
bbsULDL.rexx - Reads the CURRENT file library descriptions and writes
statistics to "Information/STATS.ULDL". This will happen automatically
once a day if STATS.ULDL exists! To disable this function, just delete
"Information/STATS.ULDL".
bbsUSER.rexx - Reads the CURRENT userfiles and writes statistics to
"Information/STATS.USER". This will happen automatically once a day
if STATS.USER exists! To disable this function, just delete the file
"Information/STATS.USER".
ChangeUserName.rexx - To change the user name HACK_MASTER", from a CLI
enter "rx ChangeUserName HACK_MASTER". Just press return to use his/her
real name, or enter the new name. UserFile, Email and EmailFiles will
be updated. This function may also be accessed from within BBBBS.
bbsREPORT.rexx - Constructs a report of inactive users and saves it as
email to sysop. NOTE: If "VIP_USER" appears on the user-data line that
contains the excluded libraries, that user will be excluded from the
list of inactive users. If a file report is requested, the file libs
will be counted and searched for possible problems. This entire report
is run as a background process thru the AREXX port and the resulting
archive left as email with an attached file.
BBBBSdemon.baud - Runs independently of BBBBS.baud and looks for a
condition where there is no user online, but BBBBS hasn't reset, and
tries to fix it. If it fails to fix it after a few tries then c:boot
is run. If c:boot does not exist, the demon runs "c:hi" which tries to
halt all currently running rexx programs.
OldEmail.rexx - Run from CLI to list Email (and emailfiles) older than a
given number of days. Output may be redirected to a file. The sysop is
also given the chance to delete each selected email or emailfile.
bbsQUICK.rexx - Offline read/reply module for BBBBS.
See the bbsQUICK.DOC and bbsQUICK.REVISION for more info.
bbsQUICKIN.rexx - Processes QUICKIN.lha archive uploaded by user. The
Super-Sysop can copy her/his QUICKIN.lha file by hand to his/her
EmailFiles drawer and then type "rx bbsQUICKIN" in a CLI/Shell to
process as if it had been uploaded by the super-sysop.
bbsQUICKOUT.rexx - Constructs archive of latest BBS activity for the
use of bbsQUICK.rexx. You can just type "rx bbsQUICKOUT" in a
CLI/Shell and a QUICKOUT archive will be constructed for the
sysop using his/her current file and message counters.
PhoneDupes.rexx - compare all user phone numbers and show duplicates.
ToggleNoise.rexx - Toggles BBBBS sounds and voice ON/OFF from CLI or
from BaudBandit. (SHIFT-F4)
bbsArcSTOP.rexx - Display running background archiver processes and
allow abort of any or all. From BaudBandit (SHIFT-F5) or CLI.
bbsDoors.rexx - Use rexxDoors offline without loading bbsLOCAL.rexx
------- Internal Macros run ONLY by BBBBS --------
bbsLOGON.baud - Runs right after the password is entered. You can
have your own ARexx (or whatever) routines run here.
See bbsLOGON.baud for more information on usage.
bbsLOGOFF.baud - Runs just before user logs off (before GOODBYE text).
See bbsLOGOFF.baud for more usage information.
bbsALPHA.rexx - Controls the archiving of the alpha filelist. If a
name and path is given for an arcfile, "Lists/Files.ALPHA" will
be archived into it using the archiver in the config file.
bbsMaint.baud - Runs if the current messages online exceed the maximum
set in "CONFIG.BBS". Deletes the oldest messages that don't have the
"SaveMe!" flag set (2 exclamation points as the first 2 characters).
ArcMsgs.rexx - Archives new (or selected) messages from the conference
area using Lharc. This is done as a background process using the AREXX
port, and the resulting archive left as email with an attached file.
MakeBroweList.baud - Archives user selected file descriptions using
Lharc. This is done as a background process using the AREXX port,
and the resulting archive left as email with an attached file.
bbsHourly.rexx - graphic display of average minutes of use hour by hour.
Contents.rexx - Display the contents of an archived file
(.arc .dms .lha .lzh .zip .zoo) assuming appropriate c: programs.
bbsExtDL.baud - Allows access to CD-ROM drives, extra floppies,
harddrives, partitions, or just assigned areas to be treated as
"Read-Only" devices.
Enter a space separated device list on line 10 of CONFIG.BBS.
Devices on this list are handled separately from the rest of the BBS
file libraries, and do not have filenotes, unless they are referenced
using "links" (see below).
bbsNewFile.rexx - If activated, automatically makes an archive copy of
each file uploaded to the BBS and sets the archive bit of the file
in the library. TO ACTIVATE this feature, put bbsNewFile.rexx into
a text editor and replace "NO_DIR:" with a valid pathname.
***************************** rexxDoors ****************************
rexxDoors:
Almost ANY rexx program that uses NO GRAPHICS OTHER THAN CHARACTERS can
be easily made into a rexxDoors program. Just add these lines at the top:
CR="0D"x
SIGNAL ON BREAK_C
SIGNAL ON BREAK_E
and these lines at the bottom, just before the main RETURN or EXIT:
BREAK_C:
BREAK_E:
/* <-- might put "SetClip('BBS_winnings',winnings)" routine here */
EXIT;
and lastly, search the text for all instances of "SAY" and add "||CR" to
the END of each SAY command.
SAY 'Here we go.' becomes SAY 'Here we go.'CR or SAY 'Here we go.'||CR
If you want the rexxDoor to check for a disconnect, you can call the
following subroutine periodically, ie, IF checkdcd() THEN SIGNAL BREAK_C
checkdcd:
IF ADDRESS()~='BAUD' THEN RETURN 0
dcd
IF RC=0 THEN RETURN 1
RETURN 0
Any "PULL" commands in the rexx script will take input from the user,
and any "SAY" commands will be sent out the modem.
All rexxDoors programs are sent the user name and his "winnings" as the
command argument. ie,
doorprogram.rexx(name winnings 0_or_seconds colorflag)
If cash_or_seconds=0, then we are playing for play-money cash (which is
remembered from session to session). If cash_or_seconds>0 then the user
is playing for the seconds remaining in this session. There is no
requirement that the rexxDoors program use ANY of these arguments. If
the rexxDoors program should return a "winnings" amount, it should do a
"CALL SETCLIP('BBS_winnings',winnings)" before it returns.
rexxDoors can also connect non-rexx programs to the BBS.
1. Program must output ONLY to the CLI. (no graphics, no windows, etc.)
2. Then write a little program like this and put it in rexxDoors. Note
that in this example, the Dungeon files have been put in a drawer within
the rexxDoors drawer, rexxDoors/Data. This location is arbitrary.
-----------------------------cut-here----------------------------------
/* Dungeon.rexx - starts up AmigaDungeon with redirects */
LF='0A'x
CR='0D'x
bbspath=GETCLIP('BBS_path')
PARSE ARG name winnings flag colorflag .
/* give any addition information needed by the user */
SAY CR
SAY 'Your terminal should add a carraige-return to each received linefeed.'CR
SAY CR
SAY ' No carraige-returns are generated by Dungeon!'CR
SAY CR
SAY 'Enter INFO for general game information. Enter HELP for help and hints.'CR
SAY CR
SAY ' Loading... Please wait for prompt character > to appear.'CR
SAY CR
/* point this macro at the Dungeons drawer so that Dungeon can find its data */
/* This may or may not be necessary for your particular application. */
CALL PRAGMA('D',bbspath'rexxDoors/Data')
/* Run the game, redirecting input and output to the console (BaudBandit) */
ADDRESS COMMAND 'CD' bbspath'rexxDoors/Data'LF'dungeon <* >*'
EXIT;
/* end of Dungeon.rexx */
-----------------------------cut-here----------------------------------
NOTE! There is no practical way to abort this kind of door once it is
started, so beware of users who abuse their time limits!
******************************* Misc *****************************
REXXSPELL:
To use RxSpell (SpellBBS.lzh) with BBBBS, simply set the proper path
and turn on spellchecking in CONFIG.BBS. You must have plenty of RAM
to use spellchecking as it may use 300k-500k all by itself. On the
other hand, it's fairly fast once it is all been loaded.
RATIO:
Download/Upload Ratio: User data line 17, Word 1 - 0=DISABLED
Example: 5 means user will be refused downloading if
DownloadBytes divided by UploadBytes exceeds 5.0,
and bbs_preferences has Down/Upload Ratios set to ON (1).
FILE LISTS:
If you feel you really MUST get in there and futz around with a file,
remember this. Changes in a file or filenote can effect _5_ different
files (at least). The file itself (say, "BBS_LIBS/Text/MyPoem.lzh"),
the filenote ("FileNotes/Text/MyPoem.lzh"), the general filelist (this
file, "Lists/Files", is VERY important to the system!), the alphabetical
list ("Lists/File.ALPHA"), and the upload counter ("Numbers/LastFile").
It is best to do file maintenance from within the BBS and let the
software worry about what files need changing and rearranging.
LINKS:
To add a file to the libraries that will be located somewhere other
than the normal BBS_LIBS...
1. "Point" BBBBS at the appropriate library by entering the library
number (BBBBS will try to show new files. When it is thru, the current
library will be the one you picked).
2. Attempt to edit a filenote using the "%" command, and the name of
the file you wish to add. When asked if this file is "on another device?"
answer "Y" and enter the FULL path and filename for the file. This "link"
is stored in the filecomment of the description.
3. Now this file will be treated as if it is in the libraries, stats will
be kept on it, etc., but it will be downloaded from the link path.
You can also move a file already in the BBS_LIBS to another device.
Handy when the only way to expand your BBS is to purchase a second HD,
or perhaps redirect some of the filelist to be downloaded from a CD-ROM,
external floppy, etc.
1. move the file, but not the filenote.
2. use the C:FileNote command to enter the new path to the old file in
the comment field of the file description. Use the *full* name, ie
C:FileNote BBS:FileNotes/Text/Thisfile.lha "HD2:Overflow/Text/Thisfile.lha"
Note that the file report will tell you to compare files and filenotes
in that directory, but won't list a filename, as it does for files that
don't have filenotes yet. Just ignore it.
BIRTHDAYS:
Each user is supposed (but not required) to enter his birthday when
filling out the application for membership. This is used in computing
the age of the average BBS user. In addition, if the user calls BBBBS
on his birthday, she will see a simple birthday greeting. If a textfile
called "BBS_TEXT/BIRTHDAY" exists, that file will also be displayed.
SOUNDS:
Some people with newer Amigas have been having trouble with BaudBandit's
Beep command not working and causing the BBS to hang, so I have removed
all of these commands as of BBBBS version 5.9 and replaced them sounds.
Line 28 of CONFIG.BBS now controls whether all sounds are on/off, not
just the YELL sound.
The following sounds are called by BBBBS. You may substitute your own
sounds instead, just rename them to one of the choices below. You can
disable an individual sound simply by renaming, moving, or deleting it.
ALERT - This sound should be short (if you use it) as it may be
sounded several times depending on bbsSounds.rexx.
NOTE: As of 6.0 this sound MAY be replaced by specific
sounds for TFAIL, LOST, TIMEOUT, and ATZ_FAIL
ATZ_FAIL - Sounds if ATZ does not return "OK". (modem is inoperative).
CBV - Sounds as Call Back Verify starts to call back.
DOWNLOAD - Sounds as the dl starts.
FEEDBACK - Sounds whenever email (or a message) is written to sysop.
INFO - Sounds when the Information area is entered.
JUMP - Sounds when the rexxDoors area is entered.
LOGOFF - Sounds after user data is saved for the last time.
LOGON - Sounds right after password is accepted.
LOST - Sounds if CARRIER is LOST.
MESSAGE - Sounds when the editor is entered (Uses FEEDBACK if to sysop)
NEW_FILE - Sounds when a new file is completely uploaded and checked.
NEW_USER - Sounds when new user replies [Y]es, she wants to register.
TFAIL - Sounds if a transfer fails (upload or download).
UPLOAD - Sounds as the upload starts.
TIMEOUT - Sounds when user is logged off due to inactivity.
YELL - Sounds on "!" command from menu. "!" also triggers voice, so
this sound needs to be fairly small and short.
All sounds are played by "Sound", which should be in your C: directory.
The syntax used is "c:run >nil: c:sound <soundfile>", so you'll need to
have "run" in your C: directory too. You can edit bbsSounds.rexx to add
effects to the sounds played, or substitute other sounds.
You can also turn off BOTH Sounds and Speach by setting a clip from CLI.
rxset BBS_NOISE OFF
Note that the clip and command must be in ALL CAPS.
If you want a sound to occur when the modems first CONNECT, enter
DCDHi \m"c:run >nil: c:sound <soundfile>"
in BaudBandit's config file (in the DCDHi field). Replace <soundfile>
with the FULL PATH to your chosen soundfile. DCDLow usually happens too
close to the LOGOFF sound to be of much use.
*** G O O D L U C K ***
*********************** end of BBBBS.doc ***************************